#include <stdio.h>
#include <iostream>
#include <stack>
using namespace std;

void test()
{
  int s=0;

  while(scanf("%d",&s)!=EOF)
  {
    if(s>0)//表示第一行数据为数字
    {
      int n=s;//表示下面的几行
      stack<int> stack1;
      while(n--)
      {
        char tmp;
        getchar();
        tmp=getchar();
        if(tmp=='P')///压栈
        {
          int num=0;
          scanf("%d",&num);
          stack1.push(num);

        }
        else
        {
          if(tmp=='O')//出栈
          {
            if(stack1.size()!=0)
            {
              stack1.pop();

            }
            else
            {
              continue;

            }

          }
          else
          {
            if(tmp=='A')//栈顶元素
            {
              if(stack1.size()!=0)
              {
                int output=stack1.top();
                printf("%d\n",output);

              }
              else
              {
                printf("E\n");

              }

            }

          }

        }

      }
      printf("\n");
      continue;

    }
    else
    {
      continue;

    }

  }

}
int main()
{
  test();
  return 0;

}

